// src/api/qwenApi.js
import axios from 'axios'
import { ElMessage } from 'element-plus'

// 创建专门用于访问通义千问的 Axios 实例
const qwenHttp = axios.create({
    baseURL: '/api/qwen', // 通过 Vite 代理发送请求
    timeout: 3000000, // 增加超时时间，因为AI响应可能较慢
})

// 请求拦截器 - 添加认证信息
qwenHttp.interceptors.request.use(
    config => {
        // 确保不会携带本地认证信息到第三方网站
        delete config.headers.Authorization
        
        // 设置通义千问API必需的请求头
        config.headers['Content-Type'] = 'application/json'
        config.headers['Accept'] = 'application/json'
        // 添加API密钥 - 请替换为您的实际API密钥
        config.headers['Authorization'] = 'sk-310c1f70d8db4fddb1cc4e5ead63eae6'
        
        return config
    },
    error => Promise.reject(error)
)

// 响应拦截器
qwenHttp.interceptors.response.use(
    response => response.data,
    error => {
        if (error.response) {
            const msg = error.response.data?.message || error.response.data?.error?.message || `请求错误 ${error.response.status}`
            ElMessage.error(msg)
            return Promise.reject(error)
        } else if (error.request) {
            ElMessage.error('网络异常，请检查网络连接')
            return Promise.reject(error)
        } else {
            ElMessage.error(error.message || '未知错误')
            return Promise.reject(error)
        }
    }
)

export default {
    // 聊天接口
    chat: (data) => {
        return qwenHttp({
            url: '', // 使用空路径，因为baseURL已经包含了完整的基础路径
            method: 'post',
            data: {
                ...data,
                model: data.model || 'qwen-plus' // 默认使用qwen-plus模型
            }
        })
    }
}